package com.itheima.reggie.common;

public class BaseContext {
    /**
     * 基于ThreadLocal封装工具类,用户保存和获取当前登录用户id
  /*   *//*
    对操作人id获得进行解释：
            - ThreadLocal是Thread的局部变量，因为ThreadLocal的底层使用的是线程池，
            每一个线程都是独立的，不会对其他线程影响，因为ThreadLocal给每个线程都提供了独立的空间，
            所有我们可以将ID值用ThreadLocal的set方法将id储存到线程，用ThreadLocal的get方法将id取出，
            ThreadLocal的remove可以删除当前的局部变量的值
*/
    private static ThreadLocal<Long> threadLocal=new ThreadLocal<>();

    /**
     * 设置值
     * @param id
     */
    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }

    /**
     * 获取值
     *
     * @return
     */
    public static Long getCurrentId(){
       return threadLocal.get();
    }
}
